package com.winapi.project.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.winapi.project.model.dto.userinterfaceinfo.UpdateUserInterfaceInfoDTO;
import com.winapi.project.model.vo.UserInterfaceInfoVO;
import com.winapi.winapicommon.model.entity.UserInterfaceInfo;

import java.util.List;

/**
 * 用户接口信息服务
 *
 * @author 张莹莹
 * @from
 */
public interface UserInterfaceInfoService extends IService<UserInterfaceInfo> {


    void validUserInterfaceInfo(UserInterfaceInfo userInterfaceInfo, boolean add);

    /**
     * 调用接口统计
     * @param interfaceInfoId
     * @param userId
     * @return
     */
    boolean invokeCount(long interfaceInfoId, long userId);

    /**
     * 查询调用次数前三的接口列表
     * @return
     */
    List<UserInterfaceInfo> topNumber();

    /**
     * 根据userId来获取接口，我拥有的接口
     * @param userId
     * @return
     */
    List<UserInterfaceInfoVO> getInterfaceInfoByUserId(Long userId);

    /**
     * 根据用户id和接口id来获取相关信息
     * @param userId
     * @param id
     * @return
     */
    UserInterfaceInfo getInterfaceInfoByUserIdAndInterfaceInfoId(Long userId, long id);

    /**
     * 根据dto更新用户接口关系表
     * @param updateUserInterfaceInfoDTO
     * @return
     */
    boolean updateUserInterfaceInfo(UpdateUserInterfaceInfoDTO updateUserInterfaceInfoDTO);
}
